package com.mq.mqtest.threadpool;

/**
 * @author 七弦
 * 拒绝策略
 */
@FunctionalInterface //拒绝策略
public interface RejectPolicy<T> {

    //参数需要看将来要把哪些信息传递给接口

    //因为将来队列满了，你要让他决定是否去执行任务，那么 哪个队列你要让调用者知道
    //然后，任务也得让调用者知道，所以把这俩参数传过去就好了

    //但是blockedQueue之前实现了泛型，为了配合blockedQueue，接口也设计成泛型，以便让他接收更多的参数类型（不一定是runnable，也可能是后面学到的callable）
    void reject(BlockedQueue<T> queue, T task);
}
